<?php

class IndexController extends Zend_Controller_Action
{

    /**
     * @var Application_Model_Eventos 
     */
    protected $_eventos = null;
    
    /**
     * @var Application_Model_Categorys 
     */
    protected $_categorys = null;
    
    /**
     * @var Application_Model_Fotos 
     */
    protected $_fotos = null;
    
    public function init()
    {
        // Breadcrumbs configuration
        $uri = $this->_request->getPathInfo();
        $activeNav = $this->view->navigation()->findByUri($uri);
        if ($activeNav) { // Controllo per evitare "Strict standards: Creating default object from empty value"
            $activeNav->active = true;
        }
        
        // Eventos model initialisation
        $this->_eventos = new Application_Model_Eventos;
        $this->_categorys = new Application_Model_Categorys;
        $this->_fotos = new Application_Model_Fotos;
    }

    public function indexAction()
    {
        $this->view->eventosActuals = $this->_eventos->getEventosActuals();
        
        // Imposto il messaggio flash che viene da admin/delete-evento
        $this->view->messages = $this->getHelper('FlashMessenger')->getMessages();
    }
    
    public function archivioAction()
    {
        $page = $this->_getParam('page', 1);
        
        if (!$this->_hasParam('categoryIdent')) {
            $this->view->archivioEventos = $this->_eventos->getAllEventos($page, 'evTitolo asc');
        }
        
        if ($this->_hasParam('categoryIdent')) {
            $categoryIdent = $this->_getParam('categoryIdent', "");
            
            // Ricavo ident da id della categoria 
            $categorys = new Application_Model_Categorys;
            $cat = $categorys->getCategoryByIdent($categoryIdent);
            $catId = $cat->catId;
            $catNome = $cat->catNome;

            // Setto la variabile di vista
            $this->view->archivioEventos = $this->_eventos->getEventosByCategoryId($catId);
            $this->view->catFrase = 'della categoria ' . $catNome;
        }
        
        // Creo le variabili di vista per la navigazione delle categorie
        $rootCategories = $this->_categorys->getCategoriesByParentId(0);
        $this->view->rootCategories = $rootCategories;
        
        $this->view->areaGeografica = $this->_categorys->getCategoriesByParentId(1);
        
        $this->view->attivita = $this->_categorys->getCategoriesByParentId(2);
        
        $this->view->areaTematica = $this->_categorys->getCategoriesByParentId(3);
        
        $this->view->durata = $this->_categorys->getCategoriesByParentId(4);
        
        // Setup serch form
        $searchForm = new Application_Form_SearchForm;
        $searchForm->setAction('/search');
        $this->view->searchForm = $searchForm;
        
    }

    public function aboutAction()
    {
        
    }

    public function sitemapAction()
    {
        $this->view->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        echo $this->view->navigation()->sitemap();
    }

    public function showAction()
    {
        $ident = $this->_getParam('ident');
        $ev = $this->_eventos->getEventoByIdent($ident);
        
        // Ricerco le categorie relative all'evento
        $cats = $ev->getCategoriesOfEvento();
        $this->view->cats = $cats;
        
        // Generazione delle date
        $dataInizio = new Zend_Date($ev->evDataInizio, 'd-m-Y');
        $dataInizio = $dataInizio->get('d/m/Y');
        
        $dataFine = new Zend_Date($ev->evDataFine, 'd-m-Y');
        $dataFine = $dataFine->get('d/m/Y');
        
        $dataTermine = new Zend_Date($ev->evDataTermine, 'd-m-Y');
        $dataTermine = $dataTermine->get('d/m/Y');
        
        if($ev->evDataRimandato != 0) {
            $dataRimandato = new Zend_Date($ev->evDataRimandato, 'd-m-Y');
            $dataRimandato = $dataRimandato->get('d/m/Y');
        } else {
            $dataRimandato = NULL;
        }
        
        // Fotos path
        $fotoPath = $this->_fotos->getFotosByEvento($ev);
        $this->view->fotoPath = $fotoPath;
        
        // Set the view variables
        $this->view->isActual = $ev->isActual();
        $this->view->titolo = $ev->evTitolo;
        $this->view->dataInizio = $dataInizio;
        $this->view->dataFine = $dataFine;
        $this->view->dataRimandato = $dataRimandato;
        $this->view->dataTermine = $dataTermine;
        $this->view->intro = $ev->evIntro;
        $this->view->corpo = $ev->evCorpo;
        $this->view->logistica = $ev->evLogistica;
        $this->view->abbigliamento = $ev->evAbbigliamento;
        $this->view->costo = $ev->evCosto;
        $this->view->info = $ev->evInfo;
        $this->view->ident = $ev->evIdent;
        $this->view->id = $ev->evId;
        
        
        $videoId = NULL;
        // Set the youtube video
        if ($ev->evVideo) {
            $videoUrl = $ev->evVideo;
            $videoId = Bix_Url::fromUrlToVideoId($videoUrl);
        $this->view->videoId = $videoId;
        }
        
        // Fetch the guida of the evento
        $guidas = new Application_Model_Guidas;
        $guida = $guidas->getGuidaById($ev->guida_guidaId);
        $this->view->guida = $guida->guidaNome;
        $this->view->guidaIdent = $guida->guidaIdent;
        
        // Fetch the difficoltà of the evento
        $difficoltas = new Application_Model_Difficoltas;
        $difficolta = $difficoltas->getDifficoltaById($ev->difficolta_diffId);
        $this->view->difficolta = $difficolta->descrizioneCompleta();
        
        // Imposto il messaggio flash che viene da admin/update e da admin/delete-category-evento
        $this->view->messages = $this->getHelper('FlashMessenger')->getMessages();
    }
    
}